基于docker搭建kafka | 您所在的位置:网站首页 › kafka topic创建命令没反应 › 基于docker搭建kafka |
步骤1:拉取镜像 在docker上安装kafka需要先安装zookeeper,我们可以使用docker pull先把zookeeper和kafka的镜像拉取下来 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka镜像拉取到后可以根据实际使用修改tag,例如: docker tag wurstmeister/zookeeper:latest registry.test.com/library/zookeeper:latest docker tag wurstmeister/kafka:latest registry.test.com/library/kafka:latest可以通过如下docker images |grep -E "zookeeper|kafka"查看修改tag后的镜像 docker images |grep -E "zookeeper|kafka"步骤2:运行zookeeper docker run -d --name zookeeper -p 2181:2181 -t registry.test.com/library/zookeeper步骤3:运行kafka # 10.160.32.28为宿主机IP # KAFKA_ZOOKEEPER_CONNECT 需要修改成zookeeper所在容器IP,容器之间是可以通过IP访问的,但是不能填写成虚拟IP docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.4:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t registry.cmcc.com/library/kafka:latestKAFKA_ZOOKEEPER_CONNECT对应的Zookeper所在容器IP 步骤4:创建topic # 查询kafka容器ID docker ps |grep kafka # 进入kafka容器 docker exec -it 53cc0e000953 /bin/sh # 创建topic mykafkadk /opt/kafka/bin/kafka-topics.sh --zookeeper 10.160.32.28:2181 --create --replication-factor 1 --partitions 1 --topic mykafkadk步骤5:查询topic列表 /opt/kafka/bin/kafka-topics.sh --zookeeper 172.17.0.4:2181 --list步骤6:发送消息 /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafkadk步骤7:消费消息 /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk --from-beginning若是发送消息报错,打印一堆日志需要检查步骤3运行kafka时配置参数是否正确,保存在/opt/kafka/config/server.properties中,若是有问题可以进行修改,docker容器中不能使用vi或vim命令直接编辑,需要使用sed命令进行修改或是将文件拷贝到容器外,修改好后再拷贝进容器 # 从容器中cp到容器外 docker cp 容器ID:/opt/kafka/config/server.properties /root/tmp # 从容器外cp道容器中 docker cp /root/tmp/server.properties 容器ID:/opt/kafka/config/server.properties完成后检查容器中文件的属组和权限是否正确 容器中重启kafka的命令 /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties运行安装第二个kafka时需要修改如下参数: 1) name 2} 端口号 3)KAFKA_BROKER_ID docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=10.160.32.28:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.160.32.28:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -v /etc/localtime:/etc/localtime -t registry.cmcc.com/library/kafka:latest创建两个kafka公用的topic: /opt/kafka/bin/kafka-console-producer.sh --broker-list 10.160.32.28:9093 --topic kafkatesttopic1发送消息: /opt/kafka/bin/kafka-console-producer.sh --broker-list 10.160.32.28:9093 --topic kafkatesttopic1消费消息: /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 10.160.32.28:9093 --topic kafkatesttopic1 --from-beginning |
CopyRight 2018-2019 实验室设备网 版权所有 |